// pages/upImge/upImge.js
var util = require('../../utils/util')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    menuArr: [{
        title: '上传商家logo',
        max: '3',
        imgArr: [],
        option: 'shop',
        fileList: []
      },
      {
        title: '上传门头照',
        max: '3',
        imgArr: [],
        option: 'shop',
        fileList: []
      },
      {
        title: '上传店面照',
        max: '3',
        imgArr: [],
        option: 'shop',
        fileList: []
      },
      {
        title: '上传营业执照',
        max: '3',
        imgArr: [],
        option: 'certificate',
        fileList: []
      },
      {
        title: '卫生许可证',
        max: '1',
        desc: '餐饮商家必填',
        imgArr: [],
        option: 'papers',
        fileList: []
      },
      {
        title: '后厨照',
        max: '1',
        desc: '餐饮商家必填',
        imgArr: [],
        option: 'shop',
        fileList: []
      },
    ],
  },

  // console.log(this.data)
  afterRead(event) {
    let index = event.currentTarget.dataset.index;
    const file = event.detail.file;
    // console.log(file);
    // 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
    wx.uploadFile({
      url: getApp().globalData.urls + 'api/image/upload',
      filePath: file.url,
      name: 'file',
      formData: {
        option: this.data.menuArr[index].option
      },
      success: (res) => {
        if (res.statusCode === 200) {
          let data = JSON.parse(res.data)
          // console.log(data)
          // 上传完成需要更新 fileList
          var fileList = []
          if (this.data.menuArr[index].fileList) {
            fileList = this.data.menuArr[index].fileList
          }
          fileList.push({
            ...file,
            url: getApp().globalData.urls + data.pic
          });
          this.setData({
            [`menuArr[${index}].fileList`]: fileList
          });
        }
      }
    })
  },
  beforeRead(e) {
    const {
      file,
      callback
    } = e.detail;
    // console.log(file.type)
    file.type === 'image' ?
      callback(true) :
      wx.showToast({
        title: '请选择图片文件',
        icon: 'none'
      })
  },
  overSize() {
    wx.showToast({
      title: '图片太大了,最大支持2M哦~',
      icon: 'none'
    })
  },
  deleteUpImg(e) {
    // console.log(e)
    let index = e.currentTarget.dataset.index;
    var fileList = this.data.menuArr[index].fileList;
    let i = e.detail.index;
    fileList.splice(i, 1);
    // console.log(fileList)
    this.setData({
      [`menuArr[${index}].fileList`]: fileList
    })
  },
  submitImg() {
    //先判断是否提交了相关照片
    var count = 0
    for (var i in this.data.menuArr) {
      if (i < 4) {
        if (this.data.menuArr[i].fileList.length === 0) {
          wx.showToast({
            title: '请' + this.data.menuArr[i].title,
            icon: 'none'
          })
          break;
        } else {
          count++
        }
      }
    }
    if (count === 4) {
      //已经上传了必须的图片，将图片数据存入缓存，修改状态：已经提交图片
      let menuArr = this.data.menuArr
      // console.log(menuArr[0].fileList)
      var BusinessJoinImg = {
        shop_logo: this.TranslateToStr(menuArr[0].fileList),
        door_head_img: this.TranslateToStr(menuArr[1].fileList),
        storefront_img: this.TranslateToStr(menuArr[2].fileList),
        open_certificate: this.TranslateToStr(menuArr[3].fileList),
        production_img: this.TranslateToStr(menuArr[4].fileList),
        cook_img: this.TranslateToStr(menuArr[5].fileList),
      }
      //缓存数据
      wx.setStorageSync('BusinessJoinImg', BusinessJoinImg);
      //修改提交状态,这个值在用户关闭小程序，或者提交成功之后会变成undefined/false
      getApp().globalData.BusinessJoinImgApplyed = true
      //然后回到填写表单的页面
      wx.navigateBack()
    }
  },

  TranslateToStr(arr) {
    //将menuArr中的图片数据转换成服务器所需要的Str数据  arr:指定的fileList
    //服务器需求去掉url字段，并用 ， 分隔
    var result = ''
    var urls = getApp().globalData.urls
    if (arr.length > 0) {
      for (let i in arr) {
        let imgstr = arr[i].url.replace(urls, '');
        if (i < arr.length - 1) {
          result = result + imgstr + ','
        } else {
          result = result + imgstr
        }
      }
    }
    // console.log(result)
    return result
  },

  onLoad: function (options) {
    //读取缓存，判断用户之前是否有上传过内容,上传过则读取缓存，显示已经保存的内容
    wx.getStorage({
      key: 'BusinessJoinMenuArr',
      success: (res) => {
        this.setData({
          menuArr: res.data
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    //缓存已经填写的资料
    wx.setStorageSync('BusinessJoinMenuArr', this.data.menuArr)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})